<?php

/*
  Concerto Platform - Online Adaptive Testing Platform
  Copyright (C) 2011-2013, The Psychometrics Centre, Cambridge University

  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License
  as published by the Free Software Foundation; version 2
  of the License, and not any of the later versions.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */

class TemplateCondition extends ATemplateRule {

    //children
    public $templateIf = null;
    public $templateElseIf = array();
    public $templateElse = null;
    public static $name = "templateCondition";
    public static $possible_attributes = array();
    public static $required_attributes = array();
    public static $possible_children = array(
        "templateIf",
        "templateElseIf",
        "templateElse"
    );
    public static $required_children = array(
        "templateIf"
    );

    public function __construct($node, $parent) {
        parent::__construct($node, $parent);
        self::$possible_attributes = array_merge(parent::$possible_attributes, self::$possible_attributes);
        self::$required_attributes = array_merge(parent::$required_attributes, self::$required_attributes);
        self::$possible_children = array_merge(parent::$possible_children, self::$possible_children);
        self::$required_children = array_merge(parent::$required_children, self::$required_children);
    }

    public function get_R_code() {
        $code = "";
        if ($this->templateIf != null)
            $code.=$this->templateIf->get_R_code();
        foreach ($this->templateElseIf as $tei) {
            $code.=$tei->get_R_code();
        }
        if ($this->templateElse != null)
            $code.= $this->templateElse->get_R_code();
        return $code;
    }

}

?>